#if !defined(__APP_DEVICE)
#define __APP_DEVICE
#include "app_buffer.h"
#include <pthread.h>
#define DEVICE_FILENAME "/dev/ttyS1"
 //#define DEVICE_FILENAME "/home/atguigu/gateway1104/dev_file_test.txt"
// 设备结构体
typedef struct{
   int  conn_type;
   char *dev_filename;  //设备文件地址
   int  dev_fd; //设备文件的文件描述符
   app_buffer_t *up_buffer; //上行缓冲区
   app_buffer_t *down_buffer;  //下行缓冲区
   pthread_t  read_thread; //读取线程
   int  (*post_read)(char *,int); //读后预处理函数
   int  (*pre_write)(char *,int); //写前预处理函数
} app_device_t;


/**
 * @brief 设备模块初始化 
 *  // 1  打开文件 
 *  // 2  初始化缓冲区 
 *  // 3  预处理的初始值NULL 
 */

 app_device_t  *app_device_init(void);

/**
 * @brief 设备模块启动
   //1  创建读取线程  (启动上行通路)
   //2 向mqtt模块注册接收数据的回调( 启动下行通路)
   @return 0 成功 -1 失败
 */
int  app_device_start(void);


/**
 * @brief 设备模块销毁
 */
void  app_device_destroy(void);



#endif // __APP_DEVICE
